Programs often need some configuration and context data for their execution. It is typically a role of the system managing the programs to make configuration and context data available. Traditionally, this has been done using configuration (“config”) files or by maintaining configuration and context data in databases.
However, the existing approaches are impractical in distributed systems that must scale to manage a potentially very large number, such as many millions, of program definitions and an even higher number of executing instances of these program definitions. Additionally, the distributed systems must provide shared and separate dynamic configuration and context data for program definitions and for executing program instances.